//	后台接口路由
package routers

import (
	"github.com/gin-gonic/gin"
	v1 "mycms/api/admin/v1"
	"mycms/middlewares"
)


func AdminApiRouters(e *gin.Engine) {

	//	路由组
	BaseRouters := e.Group("admin/v1")	//	基础功能路由 不做鉴权
	//AdminRouters := e.Group("admin/v1").Use(middlewares.JwtAuth())	//	后台路由
	AdminRouters := e.Group("admin/v1").Use(middlewares.JwtAuth(), middlewares.CasbinHandler())	//	后台路由

	base := v1.BaseApi{}

	// {} 是书写规范
	{
		//	基础功能路由 不做鉴权
		BaseRouters.POST("/login", base.Login)		//	登录
		BaseRouters.GET("/captcha", base.GetCaptcha)	//	获取验证码

	}


	//	后台功能路由
	{
		AdminRouters.GET("/userInfo", base.GetUserInfo)		//	获取用户信息
		AdminRouters.POST("/logout", base.Logout)			//	退出登录

		//	管理员
		AdminRouters.GET("/adminList", base.GetAdminLists)  //	管理员列表
		AdminRouters.GET("/adminInfo", base.GetAdminInfo)   //	管理员详情
		AdminRouters.PUT("/adminUpdate", base.UpdateAdmin)  //	管理员编辑
		AdminRouters.POST("/adminCreate", base.CreateAdmin) //	创建管理员
		AdminRouters.DELETE("/adminDel", base.DelAdmin)     //	删除管理员

		//	后台菜单
		AdminRouters.GET("/userMenu", base.GetUserMenus)  // 获取用户动态路由菜单
		AdminRouters.GET("/menuList", base.GetMenuTree)   // 后台菜单列表
		AdminRouters.GET("/menuInfo", base.GetMenuInfo)   // 后台菜单详情
		AdminRouters.PUT("/menuUpdate", base.UpdateMenu)  // 编辑后台菜单
		AdminRouters.POST("/menuCreate", base.CreateMenu) // 创建后台菜单
		AdminRouters.DELETE("/menuDel", base.DelMenu)     // 删除后台菜单

		//	角色
		AdminRouters.GET("/roleList", base.GetRoleList)   // 角色列表
		AdminRouters.POST("/roleCreate", base.CreateRole) // 创建角色
		AdminRouters.GET("/roleInfo", base.GetRoleInfo)   // 角色详情
		AdminRouters.PUT("/roleUpdate", base.UpdateRole)  // 编辑角色
		AdminRouters.DELETE("/roleDel", base.DelRole)	  // 删除角色

		//	API管理
		AdminRouters.GET("/apisList", base.GetApisList)              // API列表
		AdminRouters.GET("/allApisList", base.GetAllApisList)        // 所有API
		AdminRouters.GET("/getApisGroupList", base.GetApisGroupList) // API现有分组
		AdminRouters.POST("/apisCreate", base.CreateApis)            // 创建API
		AdminRouters.PUT("/apisUpdate", base.UpdateApis)             // 更新API
		AdminRouters.GET("/apisInfo", base.GetApisInfo)              // API详情
		AdminRouters.DELETE("/delApis", base.DelApis)                // 删除API
	}

}
